﻿/**
 * N在2E5，至少要O(NlogN)的算法
 * 对先手而言，考虑 i 和 j 两个位置
 * 如果先手选i后手选j，则对先手而言，其收益是 Ai - Bj
 * 反之，收益是 Bi - Aj
 * 显然，先手应该尽可能先选收益大的，因此做一个排序，依次选能选的即可
 * 后手也同理
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vi>;

struct _t{
    int a;
    int b;
    int idx;
    _t(int x=0,int y=0,int z=0):a(x),b(y),idx(z){}
};

int N;
vi A, B;
vector<_t> U, V;

llt proc(){
    U.clear(); U.reserve(N);
    for(int i=0;i<N;++i){
        U.push_back({A[i], B[i], i});
    }
    V.assign(U.begin(), U.end());

    sort(U.begin(), U.end(), [](const _t & x, const _t & y){
        auto ta = x.a - y.b;
        auto tb = y.a - x.b;
        if(ta != tb) return ta > tb;
        return x.idx < y.idx;
    });

    sort(V.begin(), V.end(), [](const _t & x, const _t & y){
        auto ta = x.b - y.a;
        auto tb = y.b - x.a;
        if(ta != tb) return ta > tb;
        return x.idx < y.idx;
    });

    llt ans = 0;
    vi flag(N, 0);
    int u = 0, v = 0;
    for(int i=0;i<N;i+=2){
        while(u < N and flag[U[u].idx] == 1) ++u;
        assert(u != N);
        ans += U[u].a - 1;
        flag[U[u].idx] = 1;

        if(i + 1 < N){
            while(v < N and flag[V[v].idx] == 1) ++v;
            assert(v != N);
            ans -= V[v].b - 1;
            flag[V[v].idx] = 1;
        }
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> N;
        A.assign(N, 0);
        B.assign(N, 0);
        for(auto & i : A) cin >> i;
        for(auto & i : B) cin >> i;
        cout << proc() << endl;
    }
    return 0;
}